package com.bbx.taxi.client.Util;

import android.content.Context;

import com.bbx.androidapi.util.SharedPreUtil;
import com.bbx.api.util.SharedPreEncryptUtil;
import com.bbx.taxi.client.Activity.login.LoginActivity;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 作者：严旭文 on 2016/12/16 16:50
 * 邮箱：420255048@qq.com
 */
public class HistoricCityUtils {
    //代表只存储2个城市
    private static int num=2;
    //城市之间的间隔
    private static String split=",";
    public  enum Type{
        start,end
    }

    /**
     * @param context
     * @param type  出发地还是目的地
     * @param isSn  市内还是城际
     * @param city  城市名称
     * 写入历史城市
     */
     public static void onWrite(Context context,Type type,boolean isSn,String city){
         //先读取城市
         List<String> list=new ArrayList<>();
         list.addAll(onReadHistoricCity(context, type, isSn));
         //如果已经含有该城市了，且在第一个，则不添加了
         if(list.contains(city)&&list.get(0).equals(city)){
             return;
         }
         if(list.size()>=num){
             //移除最后一个
             list.remove(list.size()-1);
         }

         //添加最新一个
         list.add(0,city);
         SharedPreUtil.putStringValue(context,
                 getMsg(type,isSn), list.toString());
     }

    /**
     * @param context
     * @param type  出发地还是目的地
     * @param isSn  市内还是城际
     * @return
     * 读取历史城市
     */
    public static String onRead(Context context,Type type,boolean isSn){
        return SharedPreUtil.getStringValue(context,
                getMsg(type,isSn), "");
    }

    /**
     * @param context
     * @param type  出发地还是目的地
     * @param isSn  市内还是城际
     * @return
     * 读取历史城市
     */
    public static List<String> onReadHistoricCity(Context context,Type type,boolean isSn){
        String list_city=onRead(context, type, isSn);
        list_city=list_city.replace("[","");
        list_city=list_city.replace("]", "");
        list_city.replace(" ","");
        List<String> list;
        list=new ArrayList<>();
        if(list_city.equals("")){
        }else{
            list.addAll(Arrays.asList(list_city.split(split)));
        }
        //处理空格问题
        List<String> list2=new ArrayList<>();
        for(String name:list){
            list2.add(name.replace(" ",""));
        }
        return list2;
    }
    private static String getMsg(Type type,boolean isSn){
        String msg="";
        if(isSn){
            switch (type){
                case start:
                    msg=SharedPreEncryptUtil.historic_city_sn_satrt;
                    break;
                case end:
                    msg=SharedPreEncryptUtil.historic_city_sn_end;
                    break;
            }
        }else{
            switch (type){
                case start:
                    msg=SharedPreEncryptUtil.historic_city_cj_satrt;
                    break;
                case end:
                    msg=SharedPreEncryptUtil.historic_city_cj_end;
                    break;
            }
        }
        return msg;
    }
}
